﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using Petra.Gis.RenderingServices;
using Petra.Gis.RenderingServices.Common;

namespace Petra.Gis.RenderingServices.WPF
{

  public partial class WPFRenderer : Renderer
  {

    protected DisplayTransformMatrix _transfMatrix;
    protected Graphics _outGraphic;
    protected GraphicsPath _gdiPluspath;

    public WPFRenderer(InteractiveMap map, Graphics g, DisplayTransformMatrix m)
      : base((PlanarMap)map)
    {
      _transfMatrix = m;
      _outGraphic = g;
    }


    //inherited implementation
    protected override PlanarOrthogonalMap mapMap
    {
      get {return this.map;}
      set
      {
        this.map = (InteractiveMap)value;
      }
    }

    //current custom implementation
    public InteractiveMap map
    {
      get { return (InteractiveMap)base.Map; }
      set {base.Map = value;}
    }




    protected override RenderStyle mapStyle
    {
      get {return this.Style;}
      set {this.Style = (Style)value;}
    }

    //current custom implementation
    public Style Style 
    {
      get { return (Style)base.Style; }
      set {this.Style = value;
      }
    }




    //object transformation { get; set; } //real data coordinates in real units to (paper) map units transformation ;-)


    /// <summary>
    /// method that implements drawing (conversion) of gis geometry into output format geometry
    /// </summary>
    /// <param name="geometry">any system type currently</param>
    public override void DrawGeometry(object geometry)
    {
      //validate type against supported types

    }

  }
}
